package com.py.inbound.mapper;

import java.time.LocalDateTime;
import java.util.List;

import com.py.inbound.domain.*;

import org.apache.ibatis.annotations.Param;

/**
 * 入库管理Mapper接口
 *
 * @author py
 * @date 2024-11-21
 */
public interface PyInboundMapper {


    /**
     * 入库排名
     */
    public List<PyInbound> selectPyInboundRanking();


    /**
     * 入库统计
     */
    public List<PyInbound> selectPyInboundStatistics(
            @Param("begin") LocalDateTime begin, @Param("end") LocalDateTime end);


    /**
     * 查询入库管理
     *
     * @param inventoryId 入库管理主键
     * @return 入库管理
     */
    public PyInbound selectPyInboundByInventoryId(Long inventoryId);

    /**
     * 查询入库管理列表
     *
     * @param pyInbound 入库管理
     * @return 入库管理集合
     */
    public List<PyInbound> selectPyInboundList(PyInbound pyInbound);

    /**
     * 新增入库管理
     *
     * @param pyInbound 入库管理
     * @return 结果
     */
    public int insertPyInbound(PyInbound pyInbound);

    /**
     * 修改入库管理
     *
     * @param pyInbound 入库管理
     * @return 结果
     */
    public int updatePyInbound(PyInbound pyInbound);

    /**
     * 删除入库管理
     *
     * @param inventoryId 入库管理主键
     * @return 结果
     */
    public int deletePyInboundByInventoryId(Long inventoryId);

    /**
     * 批量删除入库管理
     *
     * @param inventoryIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePyInboundByInventoryIds(Integer[] inventoryIds);

    List<SysDept> selectAllSysDept();


    List<SysDept> selectAllSysDeptByParentId(@Param("deptid") Long deptid);

    //根据具体部门查询用户
    List<SysUser> selectAllSysUserByParentId(@Param("deptid") Long deptid);

    //库存下拉框
    List<BsWarehouse> selectAllBsWarehouse();

    //供应商下拉
    List<PySuppliers> selectAllPySuppliers();

    //供应商选中自动获取联系人和电话
    PySuppliers selectSuppliersByid(@Param("supplierId") Long supplierId);

    List<OdPurchaseOrder> selectAllOdPurchaseOrder(OdPurchaseOrder odPurchaseOrder);

    List<OdInRejected> selectAllOdInRejected(OdInRejected odInRejected);

    //进货订单详细
    List<OdPurchaseDetails> selectAllOdPurchaseDetails(OdPurchaseDetails odPurchaseDetails);

    //根据库位编号商品编号查询库存
    List<WhInventory> selectWhInventoryByCode(WhInventory whInventory);

    List<BsWhLocation> selectAllBsWhLocation(@Param("wid") Integer wid);

    int updateStatus(PyInbound pyInbound);

    int selectStatus(@Param("rkcode") String rkcode);

    OdPurchaseDetails selectNumberOdDetalis(@Param("code") String code, @Param("pcode") String pcode);

    String selectinventoryNumber(Integer id);

    List<OdRejectedDetails> selectOdRejectedDetails(OdRejectedDetails odRejectedDetails);

    List<PyInbound> inPyInboundLS(PyInbound pyInbound);

    PyInbound inTotal();





}
